package cn.tedu.mall.seckill.timer.config;

import cn.tedu.mall.seckill.timer.job.SeckillInitialJob;
import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class QuartzConfig {

    // 向Spring容器中保存JobDetail对象
    @Bean
    public JobDetail initJobDetail(){
        return JobBuilder.newJob(SeckillInitialJob.class)
                .withIdentity("initJobDetail")
                .storeDurably()
                .build();
    }
    // 向Spring容器保存Trigger对象
    @Bean
    public Trigger initTrigger(){
        // 12:00 14:00 16:00 18:00有秒杀,各提前5分钟运行的话,cron表达式
        // 0 55 11,13,15,17 * * ?
        // 学习过程中,为了方便测试和观察,我们设计每分钟运行一次
        CronScheduleBuilder cron=CronScheduleBuilder
                                .cronSchedule("0 0/1 * * * ?");
        return TriggerBuilder.newTrigger()
                .forJob(initJobDetail())
                .withIdentity("initTrigger")
                .withSchedule(cron)
                .build();
    }

}








